#include "cppVar.h"
#include <sstream>

bool CppVar::isSemicolon(string str)
{
	int s = str.size();
	return (str[s - 1] == ';') ? true : false;
}


bool  CppVar::isVar(stack<string> & aStack, string & var)
{
	string str1 = aStack.top();
	aStack.pop();
	

	if (isValidVar(str1))
	{
	//	cout << str1 << endl;
		
	}
	else
	{
		return false;
	}


	string str2 = aStack.top();
	aStack.pop();

	if (isValidType(str2))
	{
		//cout << str1 << endl;
		var = str1.substr(0,str1.size() - 1);
		return true;
	}
	else
		return false;

}

void CppVar::findVar(const char * fname)
{
	string tempstr;
	string linestr;
	string var;
	fin.open(fname, ios_base::in);
	while (getline(fin, linestr))
	{
		++lineNo;
		istringstream is(linestr);
		while (is >> tempstr)
		{
			strStack.push(tempstr);
			if (isSemicolon(tempstr))
			{
				//	cout << tempstr << endl;
				if (isVar(strStack, var))
				{
					str2lines[var].push_back(lineNo);
				}
			}
		}
		

		


	}
	fin.close();

}